perm filename NUMBER.MAN[VLI,LSP] blob
sn#382041 filedate 1978-09-08 generic text, type T, neo UTF8
CHAPITRE 4
LES NOMBRES
VLISP possede deux types de nombres : les nombres entiers et les
nombres flottants. Ils sont stockes dans une zone de longeur fixe
geree dynamiquement. Si cette zone se revele trop petite, le
message d'erreur suivant apparait :
** no room for numbers.
Cette erreur est fatale. Il faut augmenter la taille de la zone
allouee aux nombres (dans la fonctions CONFIGURATION du fichier
initial CONFIG.INI) et relancer le travail.
Si durant un calcul, une exception arithmetique se produit, une
erreur apparait, avec comme libelle :
** arithmetic exception. PC : <pc>
dans lequel <pc> est la valeur du Program Control. Ce PC contient
en partie droite la valeur du compteur ordinal de l'instruction
ayant provoquee l'interruption et en partie gauche l'etat des
indicateurs (en particulier les indicateurs debordement d'entier ,
debordement flottant , division par 0 ... cf: SYSTEM REF. MANUAL
pg. 2-58 pour avoir une description complete de ces indicateurs).
Certaines fonctions (les fonctions de conversion, les fonctions de
l'arithmetique mixte et les fonctions de comparaison mixte) testent
si leur(s) argument(s) sont des nombres. Dans le cas ou ils ne le
seraient pas, une erreur apparait. Le libelle de cette erreur est :
<fonction> : ** non numeric arg : <argument>
dans lequel le nom de la fonction et l'argument incrimine sont
imprimes.
Un certain nombre de fonctions mathematiques ont ete "empruntees" a
la bibliotheque FORTRAN (ex: les fonctions SQRT, SIN, ATAN ...).
Ces fonctions emetttent parfois des diagnostics d'erreurs qui leurs
sont propres (par ex: la tentative de calcul de la racine carre
d'un nombre negatif ...). Ces erreurs ne sont pas fatales sous
VLISP mais le resultat du calcul est bien evidemment eronne.
VLISP 10 . 3 Manuel de Reference Page 4-2
4.1 REPRESENTATION DES NOMBRES
La representation externe des nombres entiers est une suite de
digits dans la base de numeration courante. Cette base est definie
par les fonctions :
(STATUS 5 <n>) en entree
(STATUS 6 <n>) en sortie
dans lesquelles <n> est un nombre compris entre 2 et 16. Par
defaut, la valeur de ces bases est de 10.
Il existe un macro-caractere standard qui permet de lire des
S-expressions en supposant que tous les nombres qui y sont inclus
sont represente en octal, l'anti-slash \ . Il possede la definition
suivante :
(DMC "\" ()
(PUSH (STATUS 5)) ; sauve l'ancienne base ;
(STATUS 5 8) ; base d'entree octale ;
(PROG1 ; puis lit une S-expression (qui ;
(READ) ; sera ramenee en valeur) et ;
(STATUS 5 (POP)))) ; restaure l'ancienne base ;
ex : \(730 . 272) est equivalent a (472 . 186)
Les nombres entiers peuvent etre signes ou non. Le traitement des
signes est controle par des bits du r.g. :
bit 12 du r.g. en entree un nombre peut debuter par le signe +
bit 13 du r.g. en entree un nombre peut debuter par le signe -
bit 22 du r.g. en sortie les nombres positifs debutent par le
caractere -
bit 23 du r.g. en sortie les nombres negatifs debutent par le
caractere -
Ces nombres sont stockes en memoire sur un mot (de 36 bits); ils
doivent donc etre compris dans l'intervalle [ -2 ↑ 35 ,
+2 ↑ 35 - 1 ] c'est-a-dire [-34359738368 , +34359738367].
La representation externe des nombres flottants est une suite de
digits decimaux suivie immediatement par un point decimal ( . ) et
suivie optionnellement par une fraction decimale egalement. Pour
garder une precision de 8 digits un exposant peut etre rajoute en
notation "E". Cette derniere forme d'ecriture n'est toutefois
disponible qu'en sortie actuellement. Les nombres flottants sont
stockes en memoire sur un mot (de 36 bits) qui contient 1 bit de
signe, 8 bits d'exposant et 27 bits de mantisse.
Il n'existe a l'heure actuelle ni de nombres flottants "double
precision", ni de nombres complexes, ni de "Bignums".
VLISP 10 . 3 Manuel de Reference Page 4-3
4.2 LES TEST DE TYPE
(NUMBP <s>) [SUBR a 1 argument]
Cette fonction sert a tester si l'argument <s> est un nombre de
n'importe quel type. si l'argument <s> est un nombre, NUMBP
ramene <s> sinon NUMBP ramene NIL.
ex : (NUMBP (ADD1 67)) -> 68
(NUMBP -56.89) -> -56.89
(NUMBP "Nan") -> NIL
(INUMBP <s>) [SUBR a 1 argument]
teste si l'argument <s> est un "petit entier" i.e. un nombre
entier ayant une representation unique dans l'interprete. Si
<s> est un petit entier , INUMBP ramene ce nombre sinon INUMBP
ramene NIL. Cette fonction est principalement utilisee par le
compilateur pour ameliorer le code genere : en effet les
comparaisons de petits entiers se font sur des adresses. Le
nombre de petits entiers est determinee au moment de la
generation du systeme VLISP. D'une maniere standard tous les
nombres entiers dans l'intervale [-127 , +511] sont des petits
entiers.
ex : (INUMBP 78) -> 78
(INUMBP -2558) -> NIL
(EQP 12 12) -> T (toujours, si 12 est un petit entier)
(FIXP <s>) [SUBR a 1 argument]
Cette fonction sert a tester si l'argument <s> est un nombre
entier. Si <s> est un nombre entier FIXP ramene ce nombre
sinon FIXP ramene NIL.
ex : (FIXP 78) -> 78
(FIXP -8878) -> -8878
(FIXP 12.2) -> NIL
(FLOATP <s>) [SUBR a 1 argument]
Cette fonction sert a tester si l'argument <s> est un nombre
flottant. Si <s> est un nombre flottant FLOATP ramene ce
nombre sinon FLOATP ramene NIL.
ex : (FLOATP 100) -> NIL
(FLOATP 100.1) -> 100.1
VLISP 10 . 3 Manuel de Reference Page 4-4
(TYPNUMB <s>) [SUBR a 1 argument]
cette fonction teste le type du nombre donne en argument et
ramene l'atome :
- FIX si l'argument <n> est de type entier,
- FLOAT si l'argument <n> est de type flottant,
- NIL si l'argument <n> n'est pas un nombre.
ex : (TYPNUMB 14) -> FIX
(TYPNUMB 14.4) -> FLOAT
(TYPNUMB "ou") -> NIL
4.3 LES CONVERSIONS
Ces fonctions testent si leur argument est un nombre. Dans le cas
ou il ne l'est pas, une erreur apparait. Le libelle de cette erreur
est :
<fonction> : ** non numeric arg : <argument>
dans lequel le nom de la fonction et l'argument incrimine sont
imprimes.
(FIX <n>) [SUBR a 1 argument]
convertit le nombre flottant <n> en son equivalent entier. Un
calcul d'arrondi est effectue automatiquement de la maniere
suivante : la partie entiere est incrementee de 1 si la partie
fractionnaire est >= 0.5 (pour les nombres negatifs le test est
<= a 0.5 ).
EX : (FIX 3.14) -> 3
(FIX 3.98) -> 4
(FIX 3) -> 3
(FLOAT <n>) [SUBR a 1 argument]
convertit le nombre entier <n> en son equivalent flottant.
ex : (FLOAT 3) -> 3.
(FLOAT -2) -> -2.
(FLOAT 120000000) -> 1.2E8
(FLOAT 3.14) -> 3.14
VLISP 10 . 3 Manuel de Reference Page 4-5
4.4 ARITHMETIQUE ENTIERE
Les fonctions qui vont etre decrites utilisent des operandes
supposes de type entier. Ces fonctions n'effectuent aucun controle
de validite de type. Si les arguments ne sont pas des nombres
entiers, ces fonctions livrent en general de bien etranges
resultats. Toutefois un calcul impossible povoque l'erreur
** arithmetic exception (voir cette erreur).
(ABS <n>) [SUBR a 1 argument]
ramene la valeur absolue de l'argument <n>.
ex : (ABS 10) -> 10
(ABS -10) -> 10
(ADD1 <n>) [SUBR a 1 argument]
ramene la valeur : <n> + 1 .
ex : (ADD1 6) -> 7
(ADD1 -4) -> -3
(DIFFER <n1> ... <nN>) [SUBR a N arguments]
ramene la valeur : <n1> - <n2> - ... - <nN>
ex : (DIFFER 6) -> 6
(DIFFER 12 7 3) -> 2
(MAX <n1> ... <nN>) [SUBR a N arguments]
ramene la valeur maximum des <n1> ... <nN>.
ex : (MAX 1 3 5 3 1) -> 5
(MIN <n1> ... <nN>) [SUBR a N arguments]
ramene la valeur minimum des <n1> ... <nN>.
ex : (MIN 5 4 3 4 ) -> 3
(MINUS <n>) [SUBR a 1 argument]
ramene la valeur : - <n>
ex : (MINUS -10) -> 10
VLISP 10 . 3 Manuel de Reference Page 4-6
(MINUS 25) -> -25
(PLUS <n1> ... <nN>) [SUBR a N arguments]
ramene la valeur : <n1> + <n2> + ... + <nN>
ex : (PLUS 5 6) -> 11
(PLUS 5 6 4) -> 15
(QUO <n1> ... <nN>) [SUBR a N arguments]
ramene la valeur du quotient de : <n1> / <n2> / ... / <nN>
ex : (QUO 20 5) -> 4
(QUO 40 4 2) -> 5
(REM <n1> <n2>) [SUBR a 2 arguments]
ramene la valeur du reste de la division entiere de <n1> par
<n2>.
ex : (REM 11 3) -> 2
(REM 14 22) -> 14
(SUB1 <n>) [SUBR a 1 argument]
ramene la valeur : <n> - 1
ex : (SUB1 7) -> 6
(SUB1 -9) -> -10
(TIMES <n1> ... <nN>) [SUBR a N arguments]
ramene la valeur : <n1> * <n2> * ... * <nN>
ex : (TIMES 10 4) -> 40
(TIMES 2 3 4) -> 24
VLISP 10 . 3 Manuel de Reference Page 4-7
4.5 COMPARAISONS ENTIERES
Ces fonctions n'effectuent aucun test de validite de type. Si les
arguments de ces fonctions ne sont pas des nombres, leurs resultats
ne sont pas significatifs. Elles ne provoquent jamais d'erreur.
(EQN <n1> <n2>) [SUBR a 2 arguments]
ramene <n1> si les 2 nombres <n1> et <n2> sont egaux, sinon EQN
ramene NIL.
ex : (EQN 58 58) -> 58
(EQN 34 34.) -> NIL
(EQN 21963283741 21963283741.) -> 21963283741
(et c'est bien le seul cas d'egalite mixte!)
(EVENP <n>) [SUBR a 1 argument]
ramene <n> si <n> est pair. Si <n> est impair EVENP ramene
NIL.
ex : (EVENP 4) -> 4
(EVENP -5) -> NIL
(GE <n1> <n2> ... <nN-1> <nN>) [SUBR a N arguments]
si <n1> >= <n2> >= ... >= <nN-1> >= <nN> alors GE ramene
<nN-1> sinon GE ramene NIL.
ex : (GE 3 7) -> NIL
(GE 7 7 4 3) -> 4
(GEZP <n>) [SUBR a 1 argument]
ramene <n> si <n> est plus grand ou egal a 0. Si <n> est plus
petit que 0 GEZP ramene NIL.
ex : (GEZP 5) -> 5
(GEZP 0) -> 0
(GEZP -5) -> NIL
(GT <n1> <n2> ... <nN-1> <nN>) [SUBR a N arguments]
si <n1> > <n2> > ... > <nN-1> > <nN> alors GT ramene <nN-1>
sinon GT ramene NIL.
ex : (GT 5 5) -> NIL
VLISP 10 . 3 Manuel de Reference Page 4-8
(GT 7 4 3) -> 4
(GZP <n>) [SUBR a 1 argument]
ramene <n> si <n> est plus grand que 0. Si <n> est plus petit
ou egal a 0 GZP ramene NIL.
ex : (GZP 5) -> 5
(GZP 0) -> NIL
(GZP -5) -> NIL
(LE <n1> <n2> ... <nN-1> <nN>) [SUBR a N arguments]
si <n1> <= <n2> <= ... <= <nN-1> <= <nN> alors LE ramene
<nN-1> sinon LE ramene NIL.
ex : (LE 5 5) -> 5
(LE 4 4 6 9) -> 9
(LEZP <n>) [SUBR a 1 argument]
ramene <n> si <n> est plus petit ou egal a 0. Si <n> est plus
grand que 0 LEZP ramene NIL.
ex : (LEZP 5) -> NIL
(LEZP 0) -> 0
(LEZP -5) -> -5
(LT <n1> <n2> ... <nN-1> <nN>) [SUBR a N arguments]
si <n1> < <n2> < ... < <nN-1> < <nN> alors LT ramene <nN-1>
sinon LT ramene NIL.
ex : (LT 5 5) -> NIL
(LT 4 5 6) -> 5
(LZP <n>) [SUBR a 1 argument]
ramene <n> si <n> est plus petit que 0. Si <n> ets plus grand
ou egal a 0 LZP ramene NIL.
ex : (LZP 5) -> NIL
(LZP 0) -> NIL
(LZP -5) -> -5
VLISP 10 . 3 Manuel de Reference Page 4-9
(NEQN <n1> <n2>) [SUBR a 2 arguments]
ramene <n1> si les deux nombres <n1> et <n2> sont differents.
NEQN ramene NIL si les deux nombres sont egaux. Cette fonction
est equivalente a (NOT (EQN <n1> <n2>)).
ex : (NEQN 5 6) -> 5
(NEQN -3 -3) -> NIL
(NEROP <n>) [SUBR a 1 argument]
ramene <n> si <n> est different de 0. Si <n> egal 0 NEROP
ramene NIL.
ex : (NEROP 5) -> 5
(NEROP 0) -> NIL
(NEROP -5) -> -5
(ODDP <n>) [SUBR a 1 argument]
ramene <n> si <n> est impair. Si <n> est pair ODDP ramene NIL.
ex : (ODDP -4) -> NIL
(ODDP -5) -> -5
(ZEROP <n>) [SUBR a 1 argument]
ramene 0 si <n> est egal a 0 sinon ramene NIL.
ex : (ZEROP 5) -> NIL
(ZEROP 0) -> 0
(ZEROP -5) -> NIL
4.6 ARITHMETIQUE MIXTE
Ces fonctions testent si leurs arguments sont des nombres. Dans le
cas ou ils ne le sont pas, une erreur apparait. Le libelle de cette
erreur est :
<fonction> : ** non numeric arg : <argument>
dans lequel le nom de la fonction et l'argument incrimine sont
imprimes.
Ces arguments peuvent etre de n'importe quel type : entier ou
flottant. Si l'un des arguments est flottant, le resultat sera un
nombre flottant ; si tous les arguments sont de type entier, le
resultat sera un nombre entier. Il y a donc conversion automatique
des arguments avec priorite aux nombres flottants.
VLISP 10 . 3 Manuel de Reference Page 4-10
(1+ <n>) [SUBR a 1 argument]
ramene la valeur : <n> + 1 .
ex : (1+ 3) -> 4
(1+ 1.2) -> 2.2
(1- <n>) [SUBR a 1 argument]
ramene la valeur : <n> - 1 .
ex : (1- 3) -> 2
(1- 3.2) -> 2.2
(+ <n1> <n2>) [SUBR a 2 arguments]
ramene la somme des 2 arguments : <n1> + <n2> .
ex : (+ 2 3) -> 5
(+ 2 3.2) -> 5.2
(+ 2.3 3) -> 5.3
(+ 2.3 3.3) -> 5.6
(- <n1> <n2>) [SUBR a 2 arguments]
ramene la difference des 2 arguments : <n1> - <n2> .
ex : (- 3 1) -> 2
(- 3 1.) -> 2.
(- 3.2 1.1) -> 2.1
(* <n1> <n2>) [SUBR a 2 arguments]
ramene le produit des 2 arguments : <n1> * <n2> .
ex : (* 3 2) -> 6
(* 3 2.1) -> 6.3
(* 3. 2.2) -> 6.6
(// <n1> <n2>) [SUBR a 2 arguments]
ramene le quotient des 2 arguments : <n1> // <n2> . Le
caractere / est un caractere special, il faut le doubler pour
utiliser cette fonction : on doit ecrire (// 3 2.) et non (/ 3
2.).
ex : (// 3 2) -> 1
VLISP 10 . 3 Manuel de Reference Page 4-11
(// 3 2.) -> 1.5
(// 1 3.) -> 0.3333333
(** <n1> <n2>) [SUBR a 2 arguments]
ramene la valeur de l'evaluation de <n1> a la puissance <n2>.
ex : (** 2 3) -> 8
(** 2. 4) -> 16.
(** 2 5.) -> 32.
(** 2 0.5) -> 1.414214
(** 2 -0.5) -> 0.7071068
(** 15. 0) -> 1.
(/\ <n1> <n2>) [SUBR a 2 arguments]
ramene le reste de la division de <n1> et <n2>. Cette fonction
est utilisee en general avec des arguments entiers pour ramener
la valeur du reste d'une division entiere (la fonction MODULO
). Le caractere \ etant un macro-caractere, il faut le faire
preceder du caractere / (quote caractere) pour utiliser cette
fonction. On doit ecrire (/\ 5 3) et non (\ 5 3) .
ex : (/\ 5 3) -> 2
(/\ 5. 3.) -> 2.980232E-8
4.7 COMPARAISONS MIXTES
Ces fonctions testent si leurs deux arguments sont des nombres.
Dans le cas ou ils ne le seraient pas, une erreur apparait. Le
libelle de cette erreur est :
<fonction> ** non numeric arg : <argument>
dans lequel le nom de la fonction et l'argument incrimine sont
imprimes.
Si les deux arguments sont de type entier, ces fonctions effectuent
des comparaisons entieres (elles sont donc equivalentes aux
fonctions de comparaison entieres), si au moins un des arguments est
flottat, les comparaisons s'operent en flottant apres conversion, si
necessaire de l'autre argument.
(= <n1> <n2>) [SUBR a 2 arguments]
ramene <n1> si <n1> et <n2> sont egaux. Si <n1> est different
de <n2> = ramene NIL.
ex : (= 378 378.) -> 378.
VLISP 10 . 3 Manuel de Reference Page 4-12
(= 22 23) -> NIL
(# <n1> <n2>) [SUBR a 2 arguments]
ramene <n1> si <n1> est different de <n2>. Si <n1> egal <n2>,
# ramene NIL.
ex : (# 327.12 312) -> 327.12
(# 22.0 22) -> NIL
(> <n1> <n2>) [SUBR a 2 arguments]
ramene <n1> si <n1> est superieur a <n2>. Si <n1> est
inferieur ou egal a <n2>, > rameme NIL.
ex : (> 327.12 327) -> 327.12
(> 327 327.1) -> NIL
(>= <n1> <n2>) [SUBR a 2 arguments]
ramene <n1> si <n1> est superieur ou egal a <n2>. Si <n1> est
inferieur a <n2>, >= rameme NIL.
ex : (>= 327. 327) -> 327.
(>= 327 327.1) -> NIL
(<= <n1> <n2>) [SUBR a 2 arguments]
ramene <n1> si <n1> est inferieur ou egal a <n2>. Si <n1> est
superieur a <n2>, >= rameme NIL.
ex : (<= 327. 327) -> NIL
(<= 327 327.1) -> 327
(< <n1> <n2>) [SUBR a 2 arguments]
ramene <n1> si <n1> est inferieur a <n2>. Si <n1> est
superieur ou egal a <n2>, < rameme NIL.
ex : (< 327.12 327) -> NIL
(< 327 327.1) -> 327
VLISP 10 . 3 Manuel de Reference Page 4-13
4.8 FONCTIONS LOGIQUES
Pour toutes les fonctions qui vont etre decrites, l'argument s'il
existe doit etre de type entier. Il n'y a pas de conversion
automatique. Ces fonctions ne provoquent jamais d'erreur.
(COMPL <n>) [SUBR a 1 argument]
ramene la valeur du complement logique de <n>
ex : (COMPL 0) -> -1
(COMPL -2) -> 1
(LOGAND <n1> <n2>) [SUBR a 2 arguments]
Effectue l'operation de ET logique entre les deux operandes
<n1> et <n2>. (LOGAND <n1> <n2>) et equivalent a l'ancienne
ecriture : (BOOLE 5 <n1> <n2>).
ex : (LOGAND \36 \25) -> \24
(LOGSHIFT <n1> <n2>) [SUBR a 2 arguments]
Effectue un decalage logique de la valeur <n1>, <n2> fois. Si
<n2> est >0 un decalage gauche s'effectue, dans le cas
contraire (<n2> < 0), le decalage s'effectue a droite.
ex : (LOGSHIFT 8 3) -> 64
(LOGSHIFT 8 -2) -> 2
(LOGOR <n1> <n2>) [SUBR a 2 arguments]
Effectue l'operation de OU logique entre les deux operandes
<n1> et <n2>. (LOGOR <n1> <n2>) est equivalent a l'ancienne
ecriture : (BOOLE 1 <n1> <n2>).
ex : (LOGOR \15 \7) -> \17
(LOGXOR <n1> <n2>) [SUBR a 2 arguments]
Effectue l'operation de OU exclusif logique entre les deux
operandes <n1> et <n2>. (LOGXOR <n1> <n2>) et equivalent a
l'ancienne ecriture : (BOOLE 9 <n1> <n2>).
ex : (LOGXOR 5 3) -> 6
VLISP 10 . 3 Manuel de Reference Page 4-14
(SWAP <n>) [SUBR a 1 argument]
ramene la valeur resultant de l'echange des 18 bits de droite
avec les 18 bits de gauche de <n>.
ex: (SWAP \177333001) -> \333001000177
4.9 FONCTIONS MATHEMATIQUES
Pour toutes les fonctions qui vont etre decrites, l'argument s'il
existe doit etre de type flottant. Il n'y a pas de conversion
automatique.
(SQRT <n>) [SUBR a 1 argument]
ramene la racine carree du nombre <n>. <n> doit etre un nombre
flottant positif.
ex : (SQRT 25.) -> 5.
(SQRT 5.) -> 2.236068
(SQRT -5.) ->
%FRSLIB attempt to take SQRT of negative arg= 2.236068
(SIN <n>) [SUBR a 1 argument]
ramene la valeur du sinus de l'angle <n> exprime en radians.
(COS <n>) [SUBR a 1 argument]
ramene la valeur du cosinus de l'angle <n> exprime en radians.
(ATAN <n>) [SUBR a 1 argument]
ramene la valeur de la fonction arc tangente, c'est-a-dire la
valeur de l'angle (en radians) dont la tangente est <n>.
; exemples d'utilisation des fonctions trigonometriques ;
(SETQ PI 3.14159) -> 3.14159
(SETQ PI:2 (// PI 2)) -> 1.570795
(SETQ PI:4 (// PI 4)) -> 0.7853975
(SIN 0.) -> 0
(SIN PI:4) -> 0.7071063
(SIN PI:2) -> 1.
VLISP 10 . 3 Manuel de Reference Page 4-15
(COS 0.) -> 1.
(COS PI:4) -> 0.7071072
(COS PI:2) -> 1.334181E-6
(SETQ X 1.2) -> 1.2
(SQRT (+ (** (SIN X) 2) (** (COS X) 2))) -> 1.
; la fonction TANGENTE n'est pas standard : definissons-la ;
(DE TANG (X)
(// (SIN X) (COS X))) -> TANG
(TANG 0.) -> 0
(TANG PI:4) -> 0.9999987
(TANG PI:2) -> 749523.3
(ATAN 0.) -> 0
(ATAN 1.) -> 0.7853982
(ATAN (TANG 1.123)) -> 1.123
(EXP <n>) [SUBR a 1 argument]
ramene la valeur e puissance <n>.
ex : (EXP 0) -> 1.
(EXP 1.) -> 2.718282
(LOG <n>) [SUBR a 1 argument]
ramene la valeur du logarithme neperien de <n>.
ex : (LOG 1.) -> 0
(LOG 2.718282) -> 1.
(LOG10 <n>) [SUBR a 1 argument]
ramene la valeur du logarithme decimal de <n>.
ex : (LOG10 1.) -> 0
(LOG10 10.) -> 1.
(LOG10 20.) -> 1.30103
(LOG10 100.) -> 2.
VLISP 10 . 3 Manuel de Reference Page 4-16
(RANDOM ) [SUBR a 0 argument]
ramene a chaque appel un nombre flottant, aleatoire, compris
dans l'intervalle ]0. , 1.[.
ex : (RANDOM) -> 0.1948187
(RANDOM) -> 0.7324636
(RANDOM) -> 0.6087399
Page Index-1
TABLE D'INDEX DU CHAPITRE 4
(* n1 n2) SUBR a 2 arguments . . 4-10
(** n1 n2) SUBR a 2 arguments . . 4-11
(+ n1 n2) SUBR a 2 arguments . . 4-10
(- n1 n2) SUBR a 2 arguments . . 4-10
(// n1 n2) SUBR a 2 arguments . . 4-10
(/\ n1 n2) SUBR a 2 arguments . . 4-11
(1+ n) SUBR a 1 argument . . . . 4-10
(1- n) SUBR a 1 argument . . . . 4-10
(= n1 n2) SUBR a 2 arguments . . 4-11
(ABS n) SUBR a 1 argument . . . . 4-5
(ADD1 n) SUBR a 1 argument . . . 4-5
(ATAN n) SUBR a 1 argument . . . 4-14
(COMPL n) SUBR a 1 argument . . . 4-13
(COS n) SUBR a 1 argument . . . . 4-14
(DIFFER n1 ... nn) SUBR a n arguments 4-5
(EQN n1 n2) SUBR a 2 arguments . 4-7
(EVENP n) SUBR a 1 argument . . . 4-7
(EXP n) SUBR a 1 argument . . . . 4-15
(FIX n) SUBR a 1 argument . . . . 4-4
(FIXP s) SUBR a 1 argument . . . 4-3
(FLOAT n) subr a 1 argument . . . 4-4
(FLOATP s) SUBR a 1 argument . . 4-3
(GE n1 n2 ... nn) SUBR a n arguments 4-7
(GEZP n) SUBR a 1 argument . . . 4-7
(GT n1 n2 ... nn) SUBR a n arguments 4-7
(GZP n) SUBR a 1 argument . . . . 4-8
(INUMBP s) SUBR a 1 argument . . 4-3
(LE n1 n2 ... nn) SUBR a n arguments 4-8
(LEZP n) SUBR a 1 argument . . . . 4-8
(LOG n) SUBR a 1 argument . . . . 4-15
(LOG10 n) SUBR a 1 argument . . . 4-15
(LOGAND n1 n2) SUBR a 2 arguments 4-13
(LOGOR n1 n2) SUBR a 2 arguments 4-13
(LOGSHIFT n1 n2) SUBR a 2 arguments 4-13
(LOGXOR n1 n2) SUBR a 2 arguements 4-13
(LT n1 n2 ... nn) SUBR a n arguments 4-8
(LZP n) SUBR a 1 argument . . . . 4-8
(MAX n1 ... nn) SUBR a n arguments 4-5
(MIN n1 ... nn) SUBR a n arguments 4-5
(MINUS n) SUBR a 1 argument . . . 4-5
(NEQN n1 n2) SUBR a 2 arguments 4-9
(NEROP n) SUBR a 1 argument . . . 4-9
(NUMBP s) SUBR a 1 argument . . 4-3
(ODDP n) SUBR a 1 argument . . . 4-9
(PLUS n1 ... nn) SUBR a n arguments 4-6
(QUO n1 ... nn) SUBR a n arguments 4-6
(RANDOM) SUBR a 0 argument . . . 4-16
(REM n1 n2) SUBR a 2 arguments . 4-6
(SIN n) SUBR a 1 argument . . . . 4-14
(SQRT n) SUBR a 1 argument . . . 4-14
(STATUS 5 n) base des nombres en entree 4-2
(STATUS 6 n) base des nombres en sortie 4-2
(SUB1 n) SUBR a 1 argument . . . 4-6
(SWAP n) SUBR a 1 argument . . . 4-14
(TIMES n1 ... nn) SUBR a n arguments 4-6
(TYPNUMB s) SUBR a 1 argument . . 4-4
(ZEROP n) SUBR a 1 argument . . . 4-9
(<= n1 n2) SUBR a 2 arguments . 4-12
(< n1 n2) SUBR a 2 arguments . . 4-12
(>= n1 n2) SUBR a 2 arguments . 4-12
(> n1 n2) SUBR a 2 arguments . . 4-12
(# n1 n2) SUBR a 2 arguments . . 4-12
** arithmetic exception. pc : <pc> 4-1
** no room for numbers. . . . . . 4-1
** non numeric arg : . . . . . . . 4-1, 4-4, 4-9, 4-11
. . . . . . . . . . . . . . . . . 4-2
Bit 12 du r.g. . . . . . . . . . . 4-2
Bit 13 du r.g. . . . . . . . . . . 4-2
Bit 22 du r.g. . . . . . . . . . . 4-2
Bit 23 du r.g. . . . . . . . . . . 4-2
Debordement d'entier . . . . . . . 4-1
Debordement flottant . . . . . . . 4-1
Division par 0 . . . . . . . . . . 4-1
FIX . . . . . . . . . . . . . . . 4-4
FLOAT . . . . . . . . . . . . . . 4-4
FORTRAN . . . . . . . . . . . . . 4-1
MODULO . . . . . . . . . . . . . . 4-11
Petit entier . . . . . . . . . . . 4-3
Program control. . . . . . . . . . 4-1
\ . . . . . . . . . . . . . . . . 4-2